package cn.stylefeng.guns.modular.order.entity;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

/**
 * 出库订单表
 */
@Data
@TableName("out_order")
public class OutOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 单据状态
     */
    @TableField("out_order_status")
    private String outOrderStatus;

    /**
     * 出库订单单号
     */
    @TableField("out_order_number")
    private String outOrderNumber;

    /**
     * 客户id
     */
    @TableField("out_customer_id")
    private Long outCustomerId;

    /**
     * 客户名称
     */
    @TableField("out_customer_name")
    private String outCustomerName;

    /**
     * 客户单号
     */
    @TableField("customer_number")
    private String customerNumber;

    /**
     * 销售交货单号
     */
    @TableField("sale_delivery_company")
    private String saleDeliveryCompany;

    /**
     * 出库时间
     */
    @TableField("out_time")
    private Date outTime;

    /**
     * 出库方式
     */
    @TableField("out_way")
    private String outWay;

    /**
     * 运输方式
     */
    @TableField("transport_way")
    private String transportWay;

    /**
     * 库房id
     */
    @TableField("out_storehouse_id")
    private Long outStorehouseId;
    /**
     * 库房名称
     */
    @TableField("storehouse_name")
    private String storehouseName;

    /**
     * 结算单位
     */
    @TableField("settlement_unit")
    private String settlementUnit;

    /**
     * 结算方式
     */
    @TableField("settlement_way")
    private String settlementWay;

    /**
     * 车牌号
     */
    @TableField("car_number")
    private String carNumber;

    /**
     * 装货单位
     */
    @TableField("set_unit")
    private String setUnit;

    /**
     * 装货单位Id
     */
    @TableField("set_unit_id")
    private Long setUnitId;

    /**
     * 装货地点
     */
    @TableField("set_location")
    private String setLocation;

    /**
     * 装货地点id
     */
    @TableField("set_locationid")
    private Long setLocationId;

    /**
     * 联系人
     */
    @TableField("set_people")
    private String setPeople;

    /**
     * 联系电话
     */
    @TableField("set_tel")
    private String setTel;

    /**
     * 提货时间
     */
    @TableField("set_mentiontime")
    private String setMentiontime;

    /**
     * 业务员
     */
    @TableField("salesman")
    private String salesman;

    /**
     * 业务员电话
     */
    @TableField("salesman_tel")
    private String salesmanTel;

    /**
     * 卸货单位
     */
    @TableField("get_unit")
    private String getUnit;

    /**
     * 卸货单位Id
     */
    @TableField("get_unitid")
    private Long getUnitId;

    /**
     * 卸货地点
     */
    @TableField("get_location")
    private String getLocation;

    /**
     * 卸货地点id
     */
    @TableField("get_locationid")
    private Long getLocationId;

    /**
     * 卸货联系人
     */
    @TableField("get_people")
    private String getPeople;

    /**
     * 卸货联系电话
     */
    @TableField("get_tel")
    private String getTel;

    /**
     * 到达时间
     */
    @TableField("get_mentiontime")
    private String getMentiontime;

    /**
     * 乐观锁
     */
    @TableField("version")
    private Integer version;

    /**
     * 部门id
     */
    @TableField("dept_id")
    private Long deptId;

    /**
     * 交付客户id
     */
    @TableField("deliver_id")
    private Long deliverId;

    /**
     * 备注
     */
    @TableField("note")
    private String note;

    /**
     * 驳回备注
     */
    @TableField("return_note")
    private String returnNote;

    /**
     * 制单时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 最后修改时间
     */
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 提交时间
     */
    @TableField("submit_time")
    private Date submitTime;

    /**
     * 审核时间
     */
    @TableField("examine_time")
    private Date examineTime;

    /**
     * 开始出库时间
     */
    @TableField("start_out_time")
    private Date startOutTime;

    /**
     * 完成出库时间
     */
    @TableField("finish_out_time")
    private Date finishOutTime;

    /**
     * 制单人
     */
    @TableField(value = "create_user", fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 最后修改人
     */
    @TableField(value = "update_user", fill = FieldFill.UPDATE)
    private Long updateUser;

    /**
     * 提交人
     */
    @TableField("submitter")
    private Long submitter;

    /**
     * 审核人
     */
    @TableField("examine_user")
    private Long examineUser;

    /**
     * 开始出库用户
     */
    @TableField("start_out_user")
    private Long startOutUser;

    /**
     * 完成出库用户
     */
    @TableField("finish_out_user")
    private Long finishOutUser;

    /**
     * 制单人名称
     */
    @TableField(value = "create_user_name")
    private String createUserName;

    /**
     * 最后修改人名称
     */
    @TableField(value = "update_user_name")
    private String updateUserName;

    /**
     * 提交人姓名
     */
    @TableField("submitter_name")
    private String submitterName;

    /**
     * 审核人名称
     */
    @TableField("examine_name")
    private String examineName;

    /**
     * 开始出库用户名称
     */
    @TableField("start_out_user_name")
    private String startOutUserName;

    /**
     * 完成出库用户名称
     */
    @TableField("finish_out_user_name")
    private String finishOutUserName;

    /**
     * 工厂编号
     */
    @TableField("cactory_number")
    private String factoryNumber;

    /**
     * 工厂名称
     */
    @TableField("cactory_name")
    private String factoryName;

    /**
     * 转储单号
     */
    @TableField("turn_number")
    private String turnNumber;

    /**
     * 发货日期
     */
    @TableField("hair_date")
    private String hairDate;

    /**
     * 货运单号
     */
    @TableField("transport_number")
    private String transportNumber;

    /**
     * 客户采购订单编号
     */
    @TableField("procurement_number")
    private String procurementNumber;

    /**
     * 公里数
     */
    @TableField("kilometer")
    private String kilometer;

	@Override
    public String toString() {
        return "OutOrder{" +
        "id=" + id +
        ", outOrderStatus=" + outOrderStatus +
        ", outOrderNumber=" + outOrderNumber +
        ", outCustomerId=" + outCustomerId +
        ", outCustomerName=" + outCustomerName +
        ", customerNumber=" + customerNumber +
        ", saleDeliveryCompany=" + saleDeliveryCompany +
        ", outTime=" + outTime +
        ", outWay=" + outWay +
        ", transportWay=" + transportWay +
                ", settlementWay=" + settlementWay +
                ", outStorehouseId=" + outStorehouseId +
        ", storehouseName=" + storehouseName +
        ", settlementWay=" + settlementWay +
        ", carNumber=" + carNumber +
        ", salesman=" + salesman +
        ", salesmanTel=" + salesmanTel +
        ", version=" + version +
        ", deptId=" + deptId +
        ", deliverId=" + deliverId +
        ", note=" + note +
        ", createUser=" + createUser +
        ", createTime=" + createTime +
        ", updateUser=" + updateUser +
        ", updateTime=" + updateTime +
        ", submitter=" + submitter +
        ", submitTime=" + submitTime +
        "}";
    }
}
